/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package net.randomice.emf.observables.demo.extlibrary;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see net.randomice.emf.observables.demo.extlibrary.ExtlibraryFactory
 * @model kind="package"
 * @generated
 */
public interface ExtlibraryPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "extlibrary";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://emf-observables.randomice.net/demo/extlibrary.ecore/1.0.0";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "extlib";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	ExtlibraryPackage eINSTANCE = net.randomice.emf.observables.demo.extlibrary.impl.ExtlibraryPackageImpl.init();

	/**
	 * The meta object id for the '{@link net.randomice.emf.observables.demo.extlibrary.Addressable <em>Addressable</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.randomice.emf.observables.demo.extlibrary.Addressable
	 * @see net.randomice.emf.observables.demo.extlibrary.impl.ExtlibraryPackageImpl#getAddressable()
	 * @generated
	 */
	int ADDRESSABLE = 0;

	/**
	 * The feature id for the '<em><b>Address</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ADDRESSABLE__ADDRESS = 0;

	/**
	 * The number of structural features of the '<em>Addressable</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ADDRESSABLE_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link net.randomice.emf.observables.demo.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.randomice.emf.observables.demo.extlibrary.impl.LibraryImpl
	 * @see net.randomice.emf.observables.demo.extlibrary.impl.ExtlibraryPackageImpl#getLibrary()
	 * @generated
	 */
	int LIBRARY = 1;

	/**
	 * The feature id for the '<em><b>Address</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__ADDRESS = ADDRESSABLE__ADDRESS;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__NAME = ADDRESSABLE_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Writers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__WRITERS = ADDRESSABLE_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Stock</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__STOCK = ADDRESSABLE_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>Books</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__BOOKS = ADDRESSABLE_FEATURE_COUNT + 3;

	/**
	 * The feature id for the '<em><b>Branches</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__BRANCHES = ADDRESSABLE_FEATURE_COUNT + 4;

	/**
	 * The feature id for the '<em><b>Parent Branch</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__PARENT_BRANCH = ADDRESSABLE_FEATURE_COUNT + 5;

	/**
	 * The feature id for the '<em><b>Casts</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__CASTS = ADDRESSABLE_FEATURE_COUNT + 6;

	/**
	 * The feature id for the '<em><b>Readers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__READERS = ADDRESSABLE_FEATURE_COUNT + 7;

	/**
	 * The number of structural features of the '<em>Library</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 8;


	/**
	 * Returns the meta object for class '{@link net.randomice.emf.observables.demo.extlibrary.Addressable <em>Addressable</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Addressable</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Addressable
	 * @generated
	 */
	EClass getAddressable();

	/**
	 * Returns the meta object for the attribute '{@link net.randomice.emf.observables.demo.extlibrary.Addressable#getAddress <em>Address</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Address</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Addressable#getAddress()
	 * @see #getAddressable()
	 * @generated
	 */
	EAttribute getAddressable_Address();

	/**
	 * Returns the meta object for class '{@link net.randomice.emf.observables.demo.extlibrary.Library <em>Library</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Library</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library
	 * @generated
	 */
	EClass getLibrary();

	/**
	 * Returns the meta object for the attribute '{@link net.randomice.emf.observables.demo.extlibrary.Library#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getName()
	 * @see #getLibrary()
	 * @generated
	 */
	EAttribute getLibrary_Name();

	/**
	 * Returns the meta object for the containment reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getWriters <em>Writers</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Writers</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getWriters()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Writers();

	/**
	 * Returns the meta object for the containment reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getStock <em>Stock</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Stock</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getStock()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Stock();

	/**
	 * Returns the meta object for the reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getBooks <em>Books</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Books</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getBooks()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Books();

	/**
	 * Returns the meta object for the containment reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getBranches <em>Branches</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Branches</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getBranches()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Branches();

	/**
	 * Returns the meta object for the container reference '{@link net.randomice.emf.observables.demo.extlibrary.Library#getParentBranch <em>Parent Branch</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Parent Branch</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getParentBranch()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_ParentBranch();

	/**
	 * Returns the meta object for the containment reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getCasts <em>Casts</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Casts</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getCasts()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Casts();

	/**
	 * Returns the meta object for the containment reference list '{@link net.randomice.emf.observables.demo.extlibrary.Library#getReaders <em>Readers</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Readers</em>'.
	 * @see net.randomice.emf.observables.demo.extlibrary.Library#getReaders()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Readers();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	ExtlibraryFactory getExtlibraryFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link net.randomice.emf.observables.demo.extlibrary.Addressable <em>Addressable</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.randomice.emf.observables.demo.extlibrary.Addressable
		 * @see net.randomice.emf.observables.demo.extlibrary.impl.ExtlibraryPackageImpl#getAddressable()
		 * @generated
		 */
		EClass ADDRESSABLE = eINSTANCE.getAddressable();

		/**
		 * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ADDRESSABLE__ADDRESS = eINSTANCE.getAddressable_Address();

		/**
		 * The meta object literal for the '{@link net.randomice.emf.observables.demo.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.randomice.emf.observables.demo.extlibrary.impl.LibraryImpl
		 * @see net.randomice.emf.observables.demo.extlibrary.impl.ExtlibraryPackageImpl#getLibrary()
		 * @generated
		 */
		EClass LIBRARY = eINSTANCE.getLibrary();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute LIBRARY__NAME = eINSTANCE.getLibrary_Name();

		/**
		 * The meta object literal for the '<em><b>Writers</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__WRITERS = eINSTANCE.getLibrary_Writers();

		/**
		 * The meta object literal for the '<em><b>Stock</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__STOCK = eINSTANCE.getLibrary_Stock();

		/**
		 * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__BOOKS = eINSTANCE.getLibrary_Books();

		/**
		 * The meta object literal for the '<em><b>Branches</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__BRANCHES = eINSTANCE.getLibrary_Branches();

		/**
		 * The meta object literal for the '<em><b>Parent Branch</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__PARENT_BRANCH = eINSTANCE.getLibrary_ParentBranch();

		/**
		 * The meta object literal for the '<em><b>Casts</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__CASTS = eINSTANCE.getLibrary_Casts();

		/**
		 * The meta object literal for the '<em><b>Readers</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__READERS = eINSTANCE.getLibrary_Readers();

	}

} //ExtlibraryPackage
